package main

import (
	"errors"
	"fmt"
)

/*
error: 内置的数据类型 内置的空接口
定义方法 Error() string

使用狗语言提供好的包:
	errors包下的函数: New() 创建一个err对象
    fmt包下的Errorf()函数:
		func Eoorof(format string ,a...interface{}) error
*/
func main() {
	//1.创建一个error数据
	err := errors.New("自行创建的错误提示")
	fmt.Println(err)
	fmt.Printf("%T\n", err)
	//	2.另外一个创建error的方法
	error := fmt.Errorf("错误的信息码:%d", 100)
	fmt.Println(error)
	fmt.Printf("%T\n", error)
	fmt.Println("================案列========================")
	err1 := checkAge(-3)
	if err1 != nil {
		fmt.Println(err1)
		return
	}
}

//案列:判断年龄.如果不合法,就返回一个error
func checkAge(age int) error {
	if age < 0 {
		//return errors.New("年龄不合法") //对应上述创建error方法1
		err := fmt.Errorf("您给的年龄是: %d,不合法", age) //对应上述创建error方法2
		return err
	}
	fmt.Println("年龄是:", age)
	return nil
}
